//
//  ZSHomeController.swift
//  ZSWeibo
//
//  Created by zsj1992 on 16/4/6.
//  Copyright © 2016年 ichange. All rights reserved.
//

import UIKit

class ZSHomeController: ZSBaseViewController {

    var homeListViewModel = ZSHomeListViewModel()
    
    var dataList:[ZSStatus] = {
        
        let s = [ZSStatus]()
        
        return s
    }()

    override func viewDidLoad() {
        
        super.viewDidLoad()
        
        //1.设置行高为自动计算
        tableView.rowHeight = UITableViewAutomaticDimension
        //2.设置预估行高  ==> 通过预估行高 给tableView计算 contentSize  -> tableView才可以滚动  -> 减少 tableView行高的计算
        tableView.estimatedRowHeight = 300

        tableView.rowHeight = 250
        
        registerCell()
        
        visitorView?.setVisitorViewInfo("visitordiscover_feed_image_house", text: "关注一些人，回这里看看有什么惊喜",isHome: true)
        
        if userViewModel.userLogin{
            
            navigationItem.leftBarButtonItem = UIBarButtonItem.creatItem("navigationbar_friendsearch", target: self, action: "leftItemClick")
            
            navigationItem.rightBarButtonItem = UIBarButtonItem.creatItem("navigationbar_pop", target: self, action: "rightItemClick")
            
            print("登录了")
            
            /**
            *  加载微博数据
            */
            homeListViewModel.loadHomeData({ (isSuccess, result) -> () in
                if isSuccess{
                    
                    self.dataList = result
                    self.tableView.reloadData()
                }
            })
            
        }else{
            
            print("没登录")
        }
        
    }
    
    //MARK:注册cell
    func registerCell(){

        tableView.registerClass(ZSStatusCell.self, forCellReuseIdentifier: "statusCell")
    }

    func leftItemClick(){
        navigationController?.pushViewController(ZSTestViewController(), animated: true)
    }
    
    func rightItemClick(){
        navigationController?.pushViewController(ZSTestViewController(), animated: true)
    }
}

//MARK: 这个方法中实现数据源方法
extension ZSHomeController{
    
    //MARK:返回多少行
    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        
        return (dataList.count)
        
    }
    
    
    
    
    //MARK:每行返回怎样的cell
    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> ZSStatusCell{
        
        
        
        let cell = tableView.dequeueReusableCellWithIdentifier("statusCell", forIndexPath: indexPath) as! ZSStatusCell
        
        
        cell.backgroundColor = randomColor()
        

        
        //设置一个模型
        cell.status = self.dataList[indexPath.row]
        
        

        
        
        
        
        return cell
        
    }
}




//出现的加载不上数据的bug的原因在这里
extension ZSHomeController{
    
    
    //    func loadHomeData(finished:(isSuccess:Bool)->()){
    //
    //
    //        ZSNetworkTools.sharedTools.loadHomeVCData((ZSUserAccountViewModel.sharedUserViewModel.userAccount?.access_token)!) { (result, error) -> () in
    //
    //            //bug的原因是因为这个是一个回调,会在loadData之后才调用
    //
    //            guard let resultDic = result!["statuses"] as? [[String:AnyObject]] else{
    //                print("数据格式错误")
    //                finished(isSuccess: false)
    //
    //                return
    //            }
    //
    //            var temp = [ZSStatus]()
    //
    //            for dic in resultDic{
    //
    //                let s = ZSStatus.init(dict: dic)
    //                temp.append(s)
    //                
    //            }
    //
    //            self.dataList = temp
    //            finished(isSuccess: true)
    //        }
    //    }
    
    
}






